package br.com.fafica.sisape.control;

import java.sql.SQLException;
import java.util.ArrayList;

import br.com.fafica.sisape.dao.DAOClinica;
import br.com.fafica.sisape.dao.DAOHospital;
import br.com.fafica.sisape.dao.DAOInternacao;
import br.com.fafica.sisape.model.Clinica;
import br.com.fafica.sisape.model.Endereco;
import br.com.fafica.sisape.model.Hospital;
import br.com.fafica.sisape.model.Internacao;
import br.com.fafica.sisape.repositorioarray.RepositorioClinica;
import br.com.fafica.sisape.repositorioarray.RepositorioHospital;
import br.com.fafica.sisape.repositorioarray.RepositorioInternacao;

public class ControllerHospital {
	
	public static String modo = "";
	public static Hospital hospitalLogado;
	
	public void InserirHospital(String nome, String rua, String cidade, String cnpj, String telefone) {
		Endereco end = new Endereco(rua, cidade);
		Hospital hospital = new Hospital(nome, end, cnpj, telefone);

		if (modo.equals("Teste")) {
			RepositorioHospital repoHos = new RepositorioHospital();
			repoHos.createHospital(hospital);
		} else if (modo.equals("MySql")) {
			DAOHospital daoHosp = new DAOHospital();
			try {
				daoHosp.createHospital(hospital);
			} catch (SQLException e) {
				System.out.println();
			}
		}
	}
	
	public ArrayList listarHospitais() {
		ArrayList listaHospitais = new ArrayList<>();

		if (modo.equals("Teste")) {
			RepositorioHospital repoHos = new RepositorioHospital();
			listaHospitais = repoHos.readHospital();
		} else if (modo.equals("MySql")) {
			DAOHospital daoHos = new DAOHospital();
			try {
				listaHospitais = daoHos.readHospital();
			} catch (SQLException e) {
				System.out.println(e.getMessage());
			}
		}
		return listaHospitais;
	}
	
	public void InserirInternacao(String dataEntrada, String dataSaida,
			String motivo, Integer codPaciente, Integer codHospital) {
		Internacao internacao = new Internacao(dataEntrada, dataSaida, motivo);
		internacao.setCodHospital(codHospital);
		if (modo.equals("Teste")) {
			RepositorioInternacao repoInter = new RepositorioInternacao();
			repoInter.createInternacao(internacao, codPaciente);
		} else if (modo.equals("MySql")) {
			DAOInternacao daoInternacao = new DAOInternacao();
			try {
				daoInternacao.createInternacao(internacao, codPaciente);
			} catch (SQLException e) {
				System.out.println(e.getMessage());
			}
		}
	}

	public ArrayList listarInternacoes(Integer codPaciente) {
		ArrayList listaInternacao = new ArrayList<>();

		if (modo.equals("Teste")) {
			RepositorioInternacao repoInter = new RepositorioInternacao();
			listaInternacao = repoInter.readInternacao(codPaciente);
		} else if (modo.equals("MySql")) {
			DAOInternacao daoInternacao = new DAOInternacao();
			try {
				listaInternacao = daoInternacao.readInternacao(codPaciente);
			} catch (SQLException e) {
				System.out.println(e.getMessage());
			}
		}
		return listaInternacao;
	}

	public void editarInternacao(Integer cod, String dataEntrada,
			String dataSaida, String hospital, String medico,
			String motivo, Integer codPaciente) throws SQLException {
		Internacao i = new Internacao();
		i.setCod(cod);
		i.setCodUsuario(codPaciente);
		i.setDataEntrada(dataEntrada);
		i.setDataSaida(dataSaida);
		i.setMotivo(motivo);
		if (modo.equals("Teste")) {
			RepositorioInternacao repoInter = new RepositorioInternacao();
			repoInter.updateInternacao(i);
		} else if (modo.equals("MySql")) {
			DAOInternacao daoInternacao = new DAOInternacao();
			daoInternacao.updateInternacao(i);
		}
	}

	public void deletarInternacao(Integer cod, String dataEntrada,
			String dataSaida, String hospital, String medico,
			String motivo) throws SQLException {
		Internacao i = new Internacao();
		i.setCod(cod);
		i.setDataEntrada(dataEntrada);
		i.setDataSaida(dataSaida);
		i.setMotivo(motivo);
		if (modo.equals("Teste")) {
			RepositorioInternacao repoInter = new RepositorioInternacao();
			repoInter.deleteInternacao(i);
		}
		if (modo.equals("MySql")) {
			DAOInternacao daoInternacao = new DAOInternacao();
			daoInternacao.deleteInternacao(i);
		}
	}

}
